Repository navigation
feat(libSceWebBrowserDialog): open predetermined content like the browser dialog - #10
Closed
KernelPanicNT wants to merge 1 commit into
Closed
KernelPanicNT wants to merge 1 commit into
KernelPanicNT wants to merge 1 commit into
Conversation
…wser dialog sceWebBrowserDialogOpenForPredeterminedContent takes the (param, predeterminedContentParam) signature and the 424-byte parameter of SharpProspero. It answers as sceWebBrowserDialogOpen: NOT_INITIALIZED before initialization, BUSY while running, ARG_NULL for a null dialog parameter, and otherwise finishes at once with the user-cancelled result, since there is no browser to show. A null predetermined content parameter or a size other than 424 throws, as its error code is unknown. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
KernelPanicNT
force-pushed
the
feat/libscewebbrowserdialog-predetermined-content
branch
from
October 14, 2026 16:53
dbfb383 to
d58442b
Compare
Owner
Author
|
Withdrawn: open upstream PR boykopovar#5904 already implements sceWebBrowserDialogOpenForPredeterminedContent. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Implements
sceWebBrowserDialogOpenForPredeterminedContent.sceWebBrowserDialogSetCookieandsceWebBrowserDialogResetCookieare not part of this PR and still throw.Source of the behaviour. No console measurement is involved.
(const WebBrowserDialogParam* param, const WebBrowserDialogPredeterminedContentParam* param2): SharpProsperoWebBrowserDialog.csL246-L254.size, 20 domain pointers, 256 reserved bytes) and itssizefield set to 424: L138-L155 and L215-L220.sceWebBrowserDialogOpenfrom feat(libs): offline services GTA V reaches in Story Mode boykopovar/AnyPS5#292: there is no browser, so the dialog finishes at once andsceWebBrowserDialogGetResultreportsUSER_CANCELED. The same model was merged forscePlayerReviewDialogOpenin feat(libSceCdlgPlayerReview): add the player review dialog boykopovar/AnyPS5#1243;sceWebBrowserDialogGetStatus(feat(libs): implement sceWebBrowserDialogGetStatus boykopovar/AnyPS5#873) and termination from the finished state (fix(libSceWebBrowserDialog): permit termination from finished state in sceWebBrowserDialogTerminate boykopovar/AnyPS5#4509) already rely on it.Changes:
sceWebBrowserDialogOpenForPredeterminedContenttakes the two-pointer signature and answers assceWebBrowserDialogOpen, in the same order:NOT_INITIALIZED(0x80B80003) beforesceWebBrowserDialogInitialize,BUSY(0x80B80007) while running,ARG_NULL(0x80B8000D) for a null dialog parameter. Otherwise the status becomesFINISHED.sizeis not 424, throwsstd::invalid_argument: the console's error codes for these are unknown. The status is left unchanged.guest_web_browser_dialogcovers: the call before initialization, the null dialog parameter, both throwing cases (status staysINITIALIZED), a valid call followed by theFINISHEDstatus and theUSER_CANCELEDresult, a second call fromFINISHED, and termination.docs/dev/debt/libSceWebBrowserDialog.mdrecords the signature and layout source, the unread domains and the throwing cases under Unknown function info.Still throwing:
sceWebBrowserDialogSetCookieandsceWebBrowserDialogResetCookie. With no browser, a cookie store would have no reader, so implementing them now would only add a silent stub.Progress: libSceWebBrowserDialog 7/10 → 8/10.
Tested
Head
dbfb383ee58c3d0695b02875825f9d822bc10d8e, basea453108cf7768b71879b0e832d367a935c43440d.BUILD_TESTING=ON, tests run under QEMU 8.2 user mode with-cpu EPYC-Romebecause the build host lacks AVX2):guest_web_browser_dialog_tests5/5 passes.core/libs/prx/libSceWebBrowserDialog/Export.cppwith the base version:guest_web_browser_dialog_testsfails withsceWebBrowserDialogOpenForPredeterminedContent not implemented. Restoring the PR source and rebuilding passesguest_web_browser_dialog_tests5/5.git diff --checkpass. The Linux job of the Build workflow now targets the project's self-hosted runner, so it was not run on the fork; no title was run.Duplicate and overlap check
sceWebBrowserDialogInitialize/Terminateto return error codes and implements no function from this PR. A three-way merge ofExport.cppandGuestWebBrowserDialog.cpphas no conflicts with fix(libSceWebBrowserDialog): return error codes instead of throwing in initialize and terminate boykopovar/AnyPS5#5715 (checked withgit merge-file). fix(libSceWebBrowserDialog): return error codes instead of throwing in initialize and terminate boykopovar/AnyPS5#5715 removes#include <stdexcept>fromExport.cpp, but this PR'sstd::invalid_argumentis still declared throughprx/libc/include/General.hpp, which includes<stdexcept>. That combination was not compiled.SetCookie/ResetCookie. Both were closed unmerged, and the closing comments asked for a title stopping on these calls on current main. This PR adds no such evidence (Unblocks: none). It drops the cookie calls that feat(libSceWebBrowserDialog): implement sceWebBrowserDialogSetCookie, ResetCookie, OpenForPredeterminedContent boykopovar/AnyPS5#1583's closing comment named ("nothing reads the cookie store yet"), and it throws on a null or wrong-sized content parameter. Both earlier PRs returnedARG_NULLfor a null content parameter, an unsourced code, and neither checked its size.mainwithout conflicts.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)